package com.cloud.pole.util;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ace.cache.api.CacheAPI;
import com.cloud.pole.common.constant.CacheConstant;
import com.cloud.pole.common.util.jwt.JWTInfo;
import com.cloud.pole.common.util.jwt.JwtTokenUtil;

import lombok.extern.slf4j.Slf4j;

/*
*2019年3月9日
*cloud-user
*author:frank-chen
*/
@Service
@Slf4j
public class CacheApiUtil {
	
    @Autowired
    private CacheAPI cacheAPI;
    
    /**
     * 设置缓存信息
	 * @param jwtInfo
	 * @return 
	 */
    public String generateCatchToken(JWTInfo jwtInfo) {
		String token = JwtTokenUtil.generateToken(jwtInfo, CacheConstant.BASE_USER_TOKEN_EXPIRE * 60);
		log.debug("写入缓存：token=" + token);
		cacheAPI.set(CacheConstant.BASE_USER_TOKEN_KEY + ":" + jwtInfo.getUniqueName() , token, CacheConstant.BASE_USER_TOKEN_CATCH_EXPIRE);
		return token;
    }
    
    /**
     * 清除缓存信息
	 * @param jwtInfo
	 * @return 
	 */
    public String cleanCatchToken(JWTInfo jwtInfo) {
		String token = JwtTokenUtil.generateToken(jwtInfo, CacheConstant.BASE_USER_TOKEN_EXPIRE * 60);
		cacheAPI.remove(CacheConstant.BASE_USER_TOKEN_KEY + ":" + jwtInfo.getUniqueName());
		return token;
    }
}
